#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
<% ldapdir = RUBY_PLATFORM.match(/linux/) ? 'ldap' : 'openldap' %>
include		/etc/<%= ldapdir %>/schema/core.schema
include		/etc/<%= ldapdir %>/schema/cosine.schema
include		/etc/<%= ldapdir %>/schema/inetorgperson.schema
include		/etc/<%= ldapdir %>/schema/nis.schema

## Local definitions
# include		/etc/<%= ldapdir %>/schema/local.schema
include   <%= File.expand_path('local.schema', @conf_root) %>

# Allow LDAPv2 client connections.  This is NOT the default.
allow bind_v2

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral	ldap://root.openldap.org

pidfile         <%= File.expand_path('openldap-data/run/slapd.pid', @conf_root) %>
argsfile        <%= File.expand_path('openldap-data/run/slapd.args', @conf_root) %>

# Load dynamic backend modules:
modulepath	/usr/lib/openldap

# modules available in openldap-servers-overlays RPM package:
# moduleload accesslog.la
# moduleload auditlog.la
# moduleload denyop.la
# moduleload dyngroup.la
# moduleload dynlist.la
# moduleload lastmod.la
# moduleload pcache.la
# moduleload ppolicy.la
# moduleload refint.la
# moduleload retcode.la
# moduleload rwm.la
# moduleload smbk5pwd.la
# moduleload syncprov.la
# moduleload translucent.la
# moduleload unique.la
# moduleload valsort.la

# modules available in openldap-servers-sql RPM package:
# moduleload back_sql.la

# The next three lines allow use of TLS for encrypting connections using a
# dummy test certificate which you can generate by changing to
# /etc/pki/tls/certs, running "make slapd.pem", and fixing permissions on
# slapd.pem so that the ldap user or group can read it.  Your client software
# may balk at self-signed certificates, however.

# ## For LDAPS
<% if @ssl %>
TLSCACertificateFile <%= File.expand_path('server.pem', @conf_root) %>
TLSCertificateFile <%= File.expand_path('server.pem', @conf_root) %>
TLSCertificateKeyFile <%= File.expand_path('server.pem', @conf_root) %>
<% else %>
# TLSCACertificateFile server.pem
# TLSCertificateFile server.pem
# TLSCertificateKeyFile server.pem
<% end %>
# 
# TLSVerifyClient demand

# Sample security restrictions
#	Require integrity protection (prevent hijacking)
#	Require 112-bit (3DES or better) encryption for updates
#	Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#	Root DSE: allow anyone to read it
#	Subschema (sub)entry DSE: allow anyone to read it
#	Other DSEs:
#		Allow self write access
#		Allow authenticated users read access
#		Allow anonymous users to authenticate
#	Directives needed to implement policy:

# access to dn.base="dc=esc" by * read
# access to dn.base="cn=Subschema" by * read
access to *
	by self write
	by * read
	by anonymous auth

#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database	ldif

suffix          "dc=test,dc=com"
directory       openldap-data
rootdn          "cn=admin,dc=test,dc=com"
## rootpw = secret
rootpw          {SSHA}fFjKcZb4cfOAcwSjJer8nCGOEVRUnwCC
